The Storage Area Network (SAN) among the conventional network storage technologies is a dedicated high-speed sub-network that connects servers and disk arrays through a switching network. The disk arrays are mainly used to store vast data, and the servers are mainly used to read/write the disk arrays to obtain/store the data. In an SAN system, each of the servers can access any one of the disk arrays through the switching network, thereby greatly increasing availability of the data.
SAN systems may be classified to Fiber Channel (FC) SAN systems and Internet Protocol (IP) SAN systems. FIG. 1 is a schematic diagram illustrating the structure of an IP SAN system. Referring to FIG. 1, the IP SAN system is an SAN system that employs Internet Small Computer Systems Interface (iSCSI) protocol and is built over an Ethernet network. In the IP SAN system, servers are connected to storage controllers (SCs) through an Ethernet network, and the storage controllers are in turn connected to disk arrays through an Ethernet network.
Today, to meet the demand for mass storage due to a rapid growth in the amount of information, the capacity of the disk arrays must be expanded. FIG. 2 is a schematic diagram illustrating an IP SAN system for expanding disk capacity in the prior art. Referring to FIG. 2, each master disk array in the prior art are cascaded with multiple slave disk arrays in order to expand the disk capacity. The master disk array is connected to the slave disk arrays and the slave disk arrays are connected to each other via a Serial Attached SCSI (SAS) interface.
FIG. 3 is a schematic diagram illustrating the connection between a master disk array and slave disk arrays in the prior art. Referring to FIGS. 2 and 3, in the IP SAN system for expanding disk capacity, the master disk array includes an interface unit, a processing unit, a control unit, an expander and multiple disks. The slave disk arrays each include an expander and multiple disks. The master disk array is connected to the slave disk arrays and the slave disk arrays are connected to each other via their respective SAS Expanders.
FIG. 4 is a flow chart of accessing a target disk using the IP SAN system shown in FIG. 2 in the prior art. Referring to FIGS. 2, 3 and 4, when the server accesses the slave disk array 1, for example, the procedure of accessing the target disk using the conventional IP SAN system with expandable disk capacity includes the steps as follows.
In step 401, the server puts a command or data to be sent in an iSCSI protocol packet, encapsulates the iSCSI protocol packet, and sends the encapsulated iSCSI protocol packet to the storage controller (SC).
In step 402, the storage controller (SC) decapsulates the received iSCSI protocol packet to obtain the command or data, and performs relevant processing on the obtained command or data, such as mirroring or snapshot.
In step 403, the storage controller (SC) puts the obtained command or data in an iSCSI protocol packet, encapsulates the iSCSI protocol packet, and then sends the encapsulated iSCSI protocol packet to the master disk array through the Ethernet network.
It is noted that the storage controller (SC) may be removed from the IP SAN system shown in FIG. 2, that is, the server may be connected directly to the master disk array through the Ethernet network. In such a case, the steps 401 to 403 in the procedure shown in FIG. 4 may include that the server inputs the command or data to be sent in an iSCSI protocol packet, encapsulates the iSCSI protocol packet, and sends the encapsulated iSCSI protocol packet to the master disk array through the Ethernet network.
In step 404, the interface unit of the master disk array receives the iSCSI protocol packet, and sends the iSCSI protocol packet to the processing unit.
In step 405, the processing unit of the master disk array decapsulates the received iSCSI protocol packet and parses the iSCSI protocol to obtain the command or data, and sends the obtained command or data to the control unit.
The control unit described here and in the following disclosure may be an input/output processor (IOP) or a Serial Attached SCSI/Serial Advanced Technology Attachment (SAS/SATA) Controller.
In step 406, the control unit sends the command or data to the expander.
Here, the control unit is a core unit for controlling the implementation of the disk accessing procedure, and reads/writes and maintains the disks in the disk arrays by establishing physical connection channels to the disks via the respective expanders. In this step, the control unit executes the sending process using the established lower-layer physical connections.
In step 407, the expander of the master disk array searches a routing table stored on the expander itself for a port corresponding to the address of the target disk indicated in the received command or data, and sends via the port the received command or data to the expander of the slave disk array 1 on the next stage.
In step 408, the expander of the slave disk array 1 searches a routing table stored on the expander itself for a port corresponding to the address of the target disk indicated in the received command or data, and sends via the port the command or data to a disk (e.g., disk 1) directly connected to the expander.
In step 409, the disk 1 of the slave disk array 1 performs appropriate data processing, such as data reading/writing or data scanning, on the obtained command or data according to the obtained command or data.
It is seen from the above description that the prior art has the following drawbacks.
1. Among the master disk array and the slave disk arrays cascaded to the master disk array, only the master disk array includes a control unit that can control the access to the disks. In other words, the control unit of the master disk array needs to process the access commands or data reading/writing operations for all disks. Thus, during heavy disk access by one or more of the servers, a delay in processing or even service interruption or failure, etc. generally occurs in the control unit of the master disk array due to excessive service load, and therefore normal operation of the service can't be ensured.
2. Only the master disk array includes a control unit that can control the access to the disk arrays. Thus in case a failure occurs in the control unit, the servers can't access any of the disk arrays, resulting in a halt in the entire system.
3. The port-to-port delay in the expander is relatively long. For example, it spends the expander 450 ns in establishing a connection from one port to another port, while 180 ns in switching the data from one port to another port, thus severely degrading the rate of data access by the server to the disk arrays.
4. A routing table is stored in each of the expanders for storing information on the correspondence between address and ports for all disks. The expander forwards the command or data by searching the routing table. However, in the expander, the number of table entries that may be stored in the routing table is limited. Thus at most 64 slave disk arrays may be cascaded to the master disk array, thereby severely limiting the expansion of disk capacity.